/*
 * -------------------------------------------------------------
 *  FECHA      HORA     NOMBRE      COMENTARIO
 * -------------------------------------------------------------
 *  14/05/08   17:39    ALEX        Creación de interface.
 *  14/05/08   20:11    ALEX        Añadidas notas de programación
 *                                  y documentación Javadoc.
 *                     
 *
 * 
 */

package net.ieslaferreria.infoCiutat;

import java.util.Date;

/**
 * @author Alex, Javi, David y Sergio
 */
public interface Gestor {
    
    /**
     * Determina el punt des del que s'iniciara la ruta.
     * 
     * @param puntOrigen
     */
    public void setPuntOrigen (Punt puntOrigen);
    
    /**
     * Calcula la ruta optima determinada pels parametres de cerca fins al
     * punt d'interés que li passem per parametre.
     * 
     * @param nomPuntInteres
     */
    /*
     * Farà la cerca del punt que determina el punt d'interes a partir 
     * del nom que li passem i cridarà al metode cercaRuta de l'atribut cerca
     * pasant-li el puntOrigen i el punt que hem cercat.
     */
    public void cercaRutaPuntInteres (String nomPuntInteres);
    
    /**
     * Calcula la ruta optima determinada pels parametres de cerca fins a la
     * cruïlla dels carrers que li passem per parametre.
     * 
     * @param nomCarrer
     * @param nomCarrer2
     */
    /*
     * Farà la cerca del punt que determina el creuament de les dues 
     * arestes (carrers) amb els noms que li passem i cridarà al metode 
     * cercaRuta de l'atribut cerca pasant-li el puntOrigen i el punt 
     * que hem cercat.
     */
    public void cercaRutaCruilla (String nomCarrer, String nomCarrer2);
    
    /**
     * Calcula la ruta optima determinada pels parametres de cerca fins a la
     * meitat del carrer que li passem per parametre.
     * 
     * @param nomCarrer
     */
    /*
     * Farà una cerca del carrer que li passem. Retornarà un conjunt de arestes
     * i mitjançant els atributs numeroInici i numeroFi determinarà a quina 
     * aresta es troba la meitat del carrer i creara un punt (no persistent)
     * amb coordenades calculades. Despres cridarà al metode cercaRuta de 
     * l'atribut cerca pasant-li el puntOrigen i el punt que hem cercat.
     */
    public void cercaRutaCarrer (String nomCarrer);
    
    /**
     * Calcula la ruta optima determinada pels parametres de cerca fins al
     * punt del carrer on es troba el numero especificat per parametre.
     * 
     * @param nomCarrer
     * @param numero
     */
    /*
     * Farà una cerca del carrer que li passem. Retornarà un conjunt de arestes
     * i mitjançant els atributs numeroInici i numeroFi determinarà a quina 
     * aresta es troba el numero especificat i creara un punt (no persistent)
     * amb coordenades calculades d'on es troba. Despres cridarà al metode 
     * cercaRuta de l'atribut cerca pasant-li el puntOrigen i el punt que 
     * hem cercat.
     */
    public void cercaRutaCarrer (String nomCarrer, int numero);
    
    /**
     * Calcula la ruta optima determinada pels parametres de cerca fins al
     * domicili del contacte especificat per parametre.
     * 
     * @param nomContacte
     */
    /*
     * Farà una cerca del contacte que li passem i cridarà al metode 
     * cercaRuta de l'atribut cerca pasant-li el puntOrigen i el punt que 
     * hem cercat.
     */
    public void cercaRutaContacte (String nomContacte);
    
    /**
     * Importa la base de dades amb les dades de la ciutat que haguem descarregat.
     */
    public void importarDades (); 
 
}
